Given the design complexity of today's advanced systems on chip (SoCs), many engineers validate their SoCs using production software stacks and employing basic directed bare-metal software tests. Such efforts, which are both time consuming and labor-intensive, and often come up short in coverage of use cases.